[TOMOYO Linux](http://tomoyo.sourceforge.jp/) это имплиментация системы управления доступом (MAC) Разработка началась в 2003 году и поддерживается [NTT Data Corporation](http://www.nttdata.co.jp/en/). TOMOYO Linux позволяет устанавливать рамки каждому процессу в системе, и может быть использован для ограничения доступа, как и для анализа поведения.

Для обеспечения безопасности TOMOYO Linux может быть использован для "MAC,который закрывает все практические цели для большинства пользователей и остается достаточно управляемым для системных администраторов". TOMOYO Linux не предназначен для профессионалов в области компьютерной безопасности, но инструмент для продвинутых пользователей и системных администраторов.

**Примечание:** Эта страница не предполагает исчерпывающую инструкцию и должно быть использовано в качестве поддержки к основной документации [Руководство пользователя](http://tomoyo.sourceforge.jp/documentation.html) поддерживаемой вместе с проектом.

**Tip:** [TOMOYO Linux 2.x](#TOMOYO_Linux_2.x) уже включена в репозитории [community] Arch Linux. Эта ветвь разработки уже близка к возможностям ветки 1.x, но ветка 2.х проще для установи. [TOMOYO Linux 1.x](#TOMOYO_Linux_1.x) для тех кому нужна более сильная система безопасности, пока [AKARI](#AKARI) где то между.

## Contents

*   [1 Введение](#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5)
*   [2 Разрабатываемые ветки](#.D0.A0.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.B0.D1.82.D1.8B.D0.B2.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B2.D0.B5.D1.82.D0.BA.D0.B8)
*   [3 TOMOYO Linux 1.x](#TOMOYO_Linux_1.x)
    *   [3.1 Начальная настройка](#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0)
*   [4 AKARI](#AKARI)
    *   [4.1 Ограничения AKARI](#.D0.9E.D0.B3.D1.80.D0.B0.D0.BD.D0.B8.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_AKARI)
    *   [4.2 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0)
    *   [4.3 Начальная настройка](#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_2)
*   [5 TOMOYO Linux 2.x](#TOMOYO_Linux_2.x)
    *   [5.1 Ограничения TOMOYO Linux 2.x](#.D0.9E.D0.B3.D1.80.D0.B0.D0.BD.D0.B8.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_TOMOYO_Linux_2.x)
    *   [5.2 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_2)
    *   [5.3 Начальная настройка](#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_3)
*   [6 Использование](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5)
*   [7 Ссылки](#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8)

## Введение

TOMOYO Linux делает попытку сделать систему, в которой все происходит по ожидаемому, простому пути:

*   Сделать все запросы к ядру, которые происходят в системе уже ожидаемыми.
*   Позволить администратору составлять правила системы безопасности, которые разрешают только ожидаемые действия.

В отличии от AppArmor, TOMOYO Linux предназначен для защиты всей системы от атакующего который использует уязвимости в прикладных программах. TOMOYO Linux сопоставляет действия приложения, полученные в ходе тестового запуска с теми что происходит в реальных условиях, тем самым записывая или\и блокируя подозрительную активность..

TOMOYO Linux не для тех пользователь, которые ждут готовую систему правил подставляемую кем либо.Использование TOMOYO Linux требует создания правил безопасности и нуля в особом "режиме обучения" в котором система будет автоматически создавать файлы правил которые содержат необходимые и достаточные настройки доступа уникальные для отдельной системы. TOMOYO Linux отчитывается об о всём что происходит с системой и может быть использованы для аналитики. Это включает трассировку и отчеты, что было запущено каждой прикладной программой и какие попытки доступа к сетям или файлам были сделаны.

Таблица [сравнения](http://tomoyo.sourceforge.jp/wiki-e/?WhatIs#comparison) TOMOYO Linux с [AppArmor](/index.php/AppArmor "AppArmor"), [SELinux](/index.php/SELinux "SELinux") и [SMACK](http://schaufler-ca.com/).

## Разрабатываемые ветки

[TOMOYO Linux 1.x](http://tomoyo.sourceforge.jp/1.8/index.html.en) исходная ветвь разработки. Первый официальный релиз TOMOYO Linux произошел 11 Ноября 2005\. Он был выполнен в виде патча к ядру и в настоящее время находится в активной стадии разработки и может сосуществовать с другими системами безопасности, такими как SELinux, SMACK и AppArmor.

[TOMOYO Linux 2.x](http://tomoyo.sourceforge.jp/2.3/index.html.en) В Июне 2009 года была включена в состав ядра 2.6.30 и использует стандартный механизм Linux Security Module (LSM). Однако , возможностей LSM недостаточно, что бы в полной мере реализовать TOMOYO Linux. По этому разные ветки кода не могут иметь одинаковый функционал. Это [сравнение](http://tomoyo.sourceforge.jp/comparison.html.en) двух веток.

[AKARI](http://akari.sourceforge.jp/) Основный на 1.х ветке TOMOYO Linux проект выполненный в виде загружаемого модуля ядра(LKM). Это дает преимущество в том что пользователю не нужно накладывать патч на ядро и пересобирать ядро. Эта [таблица](http://akari.sourceforge.jp/comparison.html) содержит сравнение AKARI с TOMOYO Linux 1.x и 2.x.

## TOMOYO Linux 1.x

Реализация TOMOYO Linux 1.x используя модифицированное ядро предостовляет полный функционал TOMOYO Linux. На ядро необходимо наложить [патч](http://sourceforge.jp/projects/tomoyo/).

Необходимо модифицированное ядро kernel26-ccs и установленный набор прикладных утилит. Модифицированное ядро и набор утилит можно установить через AUR Ядро [kernel-ccs](https://aur.archlinux.org/packages.php?ID=44131) и пакет утилит [ccs-tools](https://aur.archlinux.org/packages.php?ID=42606).

### Начальная настройка

В первую очередь нужно инициализировать правила безопасности:

```
# /usr/lib/ccs/init_policy

```

Правила безопасности находятся в директории /etc/css/ и могут быть настроены запуском:

```
# ccs-editpolicy

```

## AKARI

### Ограничения AKARI

AKARI имеет преимущество в том что для него не требуется модифицироанное ядро. Если вам необходим TOMOYO Linux в большей степени для исследования системы, то AKARI - это простейший метод достижения. Однако, всё же некоторые условия должны быть соблюдены. При конфигурации ядра, должны быть установлены следующие опции в .config:

```
CONFIG_SECURITY=y [требуется]
CONFIG_KALLSYMS=y [требуется]
CONFIG_PROC_FS=y [требуется]
CONFIG_MODULES=y [требуется]
CONFIG_SECURITY_PATH=y [опционально: для использования абсолютных путей]
CONFIG_SECURITY_NETWORK=y [опционально: для использования сетевых ограничений]

```

*   Настройка сложных сетевых ограничении невозможна по причине отсутствия нужной функциональности в LSM
*   Использование [wikipedia:Capability-based_security](https://en.wikipedia.org/wiki/Capability-based_security "wikipedia:Capability-based security") не возможно.
*   Возможно некоторое снижение производительности по сравнению с TOMOYO Linux 1.x

**Примечание:** Ядро Arch Linux начиная с 2.6.36 уже содержит все требуемые опции, для полной функциональности.

### Установка

AKARI и набор прикладных утилит должны быть установлены в первую очередь. Пакет [AKARI](https://aur.archlinux.org/packages.php?ID=42608) и пакет с утилитами [ccs-tools](https://aur.archlinux.org/packages.php?ID=42606) доступны в AUR.

Параметры загрузчика должны быть изменены для инициализации AKARI:

Пример для GRUB Legacy

```
title  Arch Linux
root   (hd0,0)
kernel /boot/vmlinuz26 root=/dev/sda1 ro **init=/sbin/ccs-init**
initrd /boot/kernel26.img

```

### Начальная настройка

В первую очередь нужно инициализировать правила безопасности:

```
# /usr/lib/ccs/init_policy --module_name=akari

```

Правила безопасности находятся в директории /etc/css/ и могут быть настроены запуском:

```
# ccs-editpolicy

```

## TOMOYO Linux 2.x

### Ограничения TOMOYO Linux 2.x

Имплементция TOMOYO Linux 2.x включена в основную ветку разработки ядра Linux, но всё еще не полна, но всё еще эффективна для управления доступом к файлам, но всё ещё не поддерживает следующие аспекты:

*   атрибуты файлов и управление пространством имен.
*   capabilities
*   сеть.
*   сигнал.
*   переменные окружения.
*   резервация порта.

### Установка

TOMOYO Linux 2.x часть ядра Linux и требует следующие опции в дополнение к названым ранее :

```
CONFIG_SECURITY_TOMOYO=y

```

**Примечание:** Ядро Arch Linux начиная с 2.6.36 уже содержит все требуемые опции, для полной функциональности.

Так как поддержка в ядре уже есть необходимо установить только набор прикладных утилит:

1.  pacman -S tomoyo-tools

Для ядер начиная с 2.6.30 до 2.6.35, необходимо использовать tomoyo-tools 2.2.x. Пакет доступен в [AUR](https://aur.archlinux.org/packages.php?ID=42272)

### Начальная настройка

В первую очередь должны быть инициализированы политики безопасности:

```
# /usr/lib/tomoyo/init_policy

```

Политики безопасности находятся в директории /etc/tomoyo/ и могут быть настроены запуском:

```
# tomoyo-editpolicy

```

## Использование

Важно обратиться к документации TOMOYO Linux или AKARI:

*   [TOMOYO Linux](http://tomoyo.sourceforge.jp/documentation.html.en)
*   [AKARI](http://akari.sourceforge.jp/index.html.en)

Запустите редактор политик для начала настройки. Если используется TOMOYO Linux 1.x или AKARI тогда должны быть использованы утилиты ccs-tools:

```
# /usr/sbin/ccs-editpolicy

```

Если используется TOMOYO Linux 2.x тогда следует использовать tomoyo-tools:

```
# /usr/sbin/tomoyo-editpolicy

```

Как только система запустится , TOMOYO Linux создаст домены и построит из них древо.Доступ к возможностям аналитики и ограничения применяется через домены. Каждый процесс начинает с одного домена, и имя домена будет передан по наследству запущенным процесса. Имя домена состоит из цепочки имен, составляющих историю запуска. Например домен ядра <kernel>, тогда имя домена процесса /sbin/init запущенного ядром будет"<kernel> /sbin/init". Если /sbin/init запустит /etc/rc.d/rc, то имя домена будет "<kernel> /sbin/init /etc/rc.d/rc"

К каждому домену может быть привязан профиль. Существует четыре профиля по умолчанию:

| Disabled | Все работает как на обычном ядре. |
| Learning | Режим обучения. Не сбрасывать запрос если он не удовлетворяет текущей политике. Добавить запрос в политику. |
| Permissive | Разрешающий режим. Не сбрасывать запрос если он не удовлетворяет текущей политике. |
| Enforcing | Запрещающий режим. Сбросить запрос. |

Обучающий режим может быть использован для анализа какого либо приложения или всей системы. Все запросы, будут записаны. Так же этот режим может быть использован перед тем как применять запрещающую политику.

## Ссылки

*   [Страница проекта TOMOYO Linux на SourceForge](http://tomomyo.sourceforge.jp/)
*   [TOMOYO Linux Wiki](http://tomoyo.sourceforge.jp/wiki-e/)
*   [Страница проекта AKARI на SourceForge](http://akari.sourceforge.jp/index.html.en)
*   [AKARI документация](http://akari.sourceforge.jp/index.html.en)
*   [TOMOYO Linux 1.8.x документация](http://tomoyo.sourceforge.jp/1.8/index.html.en)
*   [TOMOYO Linux 2.3.x документация](http://tomoyo.sourceforge.jp/2.3/index.html.en)
*   [Предназначение TOMOYO Linux](http://lwn.net/Articles/263179/)
*   [Пример политики](http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/centos5.5/domain_policy.conf?v=policy-sample)
*   [TOMOYO Linux в встроенных системах](http://elinux.org/TomoyoLinux)
*   [Слайды с PacSec 2007](http://sourceforge.jp/projects/tomoyo/document/PacSec2007-en-demo.pdf)